package com.gitee.wsl.flowing.actionflow.node


/**
 * 协作类型
 * APPROVAL-无：无其他协作方式
 * TRANSFER-转办：任务转给其他人办理
 * DEPUTE-委派：求助其他人审批，然后参照他的意见决定是否审批通过
 * COUNTERSIGN-会签：和其他人一起审批通过，才算通过
 * VOTE-票签：和部分人一起审批，达到一定通过率，才算通过
 * ADD_SIGNATURE-加签：办理中途，希望其他人一起参与办理
 * REDUCTION_SIGNATURE-减签：办理中途，希望某些人不参与办理
 *
 * @author xiarg
 * @since 2024/5/10 16:04
 */
enum class CooperateType(val key: Int,
                         val value: String) {
    APPROVAL(1, "无"),
    TRANSFER(2, "转办"),
    DEPUTE(3, "委派"),
    COUNTERSIGN(4, "会签"),
    VOTE(5, "票签"),
    ADD_SIGNATURE(6, "加签"),
    REDUCTION_SIGNATURE(7, "减签");

//    companion object {
//        fun getKeyByValue(value: String?): Int? {
//            for (item in entries) {
//                if (item.getValue().equals(value)) {
//                    return item.getKey()
//                }
//            }
//            return null
//        }
//
//        fun getValueByKey(key: Int?): String? {
//            for (item in entries) {
//                if (item.getKey().equals(key)) {
//                    return item.getValue()
//                }
//            }
//            return null
//        }
//
//        fun getByKey(key: Int?): CooperateType? {
//            for (item in entries) {
//                if (item.getKey().equals(key)) {
//                    return item
//                }
//            }
//            return null
//        }
//
//
//        val ONE_HUNDRED: java.math.BigDecimal = java.math.BigDecimal.valueOf(100)
//
//        /**
//         * 判断是否为或签
//         *
//         * @param
//         * @return
//         */
//        fun isOrSign(ratio: java.math.BigDecimal): Boolean {
//            if (java.util.Objects.isNull(ratio) || ratio.compareTo(java.math.BigDecimal.ZERO) <= 0) {
//                return true
//            }
//            return false
//        }
//
//
//        /**
//         * 判断是否是票签
//         *
//         * @param
//         * @return
//         */
//        fun isVoteSign(ratio: java.math.BigDecimal): Boolean {
//            if (java.util.Objects.nonNull(ratio) && ratio.compareTo(java.math.BigDecimal.ZERO) > 0 && ratio.compareTo(
//                    ONE_HUNDRED
//                ) < 0
//            ) {
//                return true
//            }
//            return false
//        }
//
//        /**
//         * 判断是否是会签
//         *
//         * @param
//         * @return
//         */
//        fun isCountersign(ratio: java.math.BigDecimal): Boolean {
//            if (java.util.Objects.nonNull(ratio) && ratio.compareTo(ONE_HUNDRED) >= 0) {
//                return true
//            }
//            return false
//        }
//    }
}